#ifndef Sem_for_Ring_Queue
#define Sem_for_Ring_Queue

#include <semaphore.h>

class Sem
{
public:
    Sem(size_t num) 
    {
        sem_init(&_sem, 0, num);
    }
    ~Sem() 
    {
        sem_destroy(&_sem);
    }

    void P() // -
    {
        sem_wait(&_sem);
    }

    void V() // +
    {
        sem_post(&_sem);
    }

private:
    sem_t _sem;
};



#endif